One widely sold operating system program which helps control a computer is WINDOWS.TM. version 3.1 ("WINDOWS") of Microsoft Corporation. Among other features, WINDOWS provides a graphical user interface allowing the user the option of using a pointing device such as a mouse, to control the operation of the computer without the need to memorize text commands usually required in DOS based applications. WINDOWS also provides application programmers with tools so that applications have a common look in structure as well as execution of common operations. A WINDOWS application programmer is thus provided with a variety of tools to assist in controlling various computer functions as well as designing "user friendly" applications.
A software program written for WINDOWS operation uses dynamic link libraries (DLLs) which contain a plurality of application programming interfaces (APIs). Examples of such DLLs are USER.EXE, KRNL386.EXE, and GDI.EXE which contain the core functionality APIs that make up Microsoft Windows 3.1. Although each of these three DLLs has the .EXE extension (usually representing an executable application), each is a DLL. The APIs are used to carry out various WINDOWS functions. For example, if a software program requires a dialog box displayed on a computer monitor to prompt a user for a command or data entry, the software program would make a call to the DialogBox API which brings up a dialog box on the computer monitor. The contents of the dialog box are local to or associated with the particular application which made the call. Another example of a WINDOWS API is the SetWindowLong API. This API associates data with a particular window, allowing a user who has switched applications to return to the point in the original application where processing had been taking place prior to the switch to the other application. WINDOWS operation and WINDOWS programming, including the use of DLLs and APIs are well known by those skilled in the art. The Microsoft WINDOWS Software Development Kit, Guide to Programming, Volumes 1-3, 1992, is incorporated by reference herein. It is available and used by WINDOWS programmers and provides reference information for many of the DLLs and APIs which are available to WINDOWS programmers.
WINDOWS, while providing ease of use for running applications, may serve as a platform for a voice recognition system. One of the features of operating systems such as WINDOWS is the ability to launch more than one application so that more than one application is running at the same time.
In WINDOWS, when more than one application is running at the same, only one of the applications is considered to be in focus by the WINDOWS operating system. The application which is in focus is usually highlighted in some way, such as by having the title displayed in a background color if minimized as an icon or changing the color of the title bar if the application is running full size. User input of data or commands from an input device such as a keyboard, mouse, or microphone, typically go directly to the application which is in focus. The window which is in focus can be in one of three states: "maximized" (taking up the full window screen); "normal" or "restored" (taking up a part of the window screen); or "minimized" (where the application is represented by an icon located at the bottom of the screen). Applications which are not in focus can also appear in any of these three states. If the application in focus is maximized, no other application is visible on screen until that application is brought into focus, unless another application has the "always on top" window style.
In order to bring an application into focus, a user typically uses a pointing device, such as a mouse, or the keyboard. Before an application can be brought into focus, however, it must be determined whether or not the application is already running. A user accomplishes this visually, by looking at a computer monitor (such as monitor 64 shown in FIG. 6). This requires the user to display the WINDOWS screens and/or WINDOWS icons in a manner which allows the user to determine if an application is already running. For example, such a display may take the form of the open and in focus Program Manager.TM. displayed over part of the screen with the lower part of the computer monitor showing icons of applications which have been launched and running, which are not in focus. Focus can be switched from Program Manager (a first application) to a second application by selecting a second application (such as an iconized application).
Another example of establishing which applications are running involves using Task List.TM. (task manager) by pressing the control [CTRL] and escape [ESC] keys of the keyboard simultaneously. This displays the WINDOWS Task List. The Task List shows which WINDOWS applications are currently running (including the program manager).
Using the Task List, a user is given several options ("buttons") regarding the applications displayed in the Task List. One of the buttons is the "switch to" button. The "switch to" button in the Task List allows switching between application windows and icons which have already been launched and are running. There is no provision for determining whether an application is currently running or switching to an application which is not running. The switch to button also requires that a designated application appearing in the Task List is highlighted prior to "pressing" or selecting the switch to button.
Other ways of viewing and selecting applications which are already running will be understood by those skilled in the art and is explained in texts such as the Microsoft WINDOWS User's Guide Version 3.1 of the Microsoft Corporation.
With the advent of voice recognition systems, such as the Voice Pilot Version 2.0 included with the Microsoft WINDOWS Sound System Version 2.0, both of Microsoft Corporation, voice control of various functions has become an option for entering data and controlling a computer. Pointing devices (including touch screens) and keyboards are thus not the only means for a user to interactively enter data and control the computer in real time.